home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
os2
/
dsksl091.zip
/
dsksleep.doc
< prev
next >
Wrap
Text File
|
1997-06-04
|
14KB
|
379 lines
-*- Mode: indented-text -*-
--- $Id: dsksleep.doc,v 1.8 1997/06/04 00:21:44 vitus Exp $
Disk Sleeper Filter - Driver Dokumentation
Description
Disk Sleeper Filter is a filter driver to stop your _SCSI_ disks
while you're doing something else than working with your computer.
Legal stuff (we need this, don't we?)
The author disclaims all warranties as to this software, whether
express or implied, including without limitation any implied
warranties of merchantability, fitness for a particular purpose,
functionality, data integrity or protection, in so far as
permitted by applicable legislation.
All trademarks are property of their respective owners and appear
for identification purposes only.
Installation
It is recommended you have an OS/2 boot disk ready, just in case
the system locks up during the boot process and you want to remove
the driver. On Warp you may use use ALT-F1, C for the same
purpose to boot to a command line with your orginal Config.Sys.
Execute DDINSTAL from a OS/2 command prompt or double-click the
Device Driver Install object (located in the System Setup folder)
if your system is Warp. Change the source directory if neccessary
and a selection list will open asking you to install the 'SCSI
Disk Sleeper'. Mark that line and click on OK. Reboot your
machine.
Installation by hand is easy:
Copy DSKSLEEP.FLT to c:\ or c:\os2\boot, assuming c: is your
boot drive.
Edit your c:\Config.Sys file (i.e. using the OS/2 "System
Editor"):
Add the following line to your Config.Sys:
BASEDEV=DSKSLEEP.FLT /V (no subdirectory name!)
The position of 'BASEDEV=DSKSLEEP.FLT' in Config.Sys doesn't
matter. If, however, you encounter problems try top of file (if
this solves your problems please report with a listing of your
Config.Sys).
WARNING: as this piece of software accessses vital parts of your
system (without disks there is not much to do :), it is
recommended to use the '/DEBUG:1' (see below) switch at least
once. If this succeeds use 'dsl' to set a really short timeout
(i.e. 3 minutes), let the disks be stopped and do any access to
restart them (click on WPS, open folders, etc.).
If both test complete successfully you should regard DSKSleep as a
working piece of software on your computer.
If the first try to restart a disk isn't successfull DSKSleep will
beep and do a retry. If that retry fails DSKSleep will beep and
do a retry. If that retry fails... If your beeping machine hangs
on disk restart you know where it comes from. <g>
Options
/V
Verbose, display some usefull and unusefull information (this
switch is always enabled in the unregistered version)
/DEBUG
Debugging display
/DEBUG:1
Debugging display and start/stop all devices once when driver
is loading
/UT:(a1,u1,min1),(a2,u2,min2)
List of disks with special timeout needs. You may exclude the
'min' value (or set it zero), in this cause the default
(possible changed via '/T:') is used.
/!UT:(a1,u1),(a2,u2)
List of disks to exclude from sleeping. They are added to
internal tables but never stopped. Use IOCtl (as in dsl.exe)
to enable sleeping these disks.
/T:<min>
Set sleeping time to <min> minutes. Default: 30 minutes.
Remember that starting a disk drive means stress for it's
mechanical parts and do not set this time to low. Maximum
time to set via '/T:<min>' is 1092 minutes (about 18 hours).
The 'a' and 'u' values in above options are indeces. 'a' depends
on the ADD order in Config.Sys and numbers all adapters (including
floppy controllers, etc.). 'u' is an unit index which the ADD
determines. BTW: these are the same values as dsl.exe displays if
executed without parameters.
Examples:
Stop first disk on adapter 1 after 20 minutes, second disk on
that adapter after 15 minutes. All other disks will be
stopped after 20 minutes (the default value):
BASEDEV=dsksleep.flt /UT:(1,0,20),(1,1,15)
Don't stop first disk on adapter 2, all other disks shall be
stopped after 60 minutes:
BASEDEV=dsksleep.flt /!UT:(2,0) /T:60
Using an explicit list of devices, specify default timeout for
all of them. Note that this command line does nothing
usefull:
BASEDEV=dsksleep.flt /UT:(1,0),(1,2),(1,3)
One word about screen output: BASEDEV drivers cannot display
anything on the console immediately, they queue messages to be
displayed later by the system initialization. Due to this fact
you might not see any messages at all (if system hangs/traps
before they are yanked to console).
Best chances to see anything is to copy this driver to the second
of your "utility disks" (or installation disks if you don't run
Warp), change the Config.Sys there (BASEDEV=dsksleep.flt /DEBUG:1
and boot from them. Now you don't rely on any hard disk.
Another way is to use 'dsl -m' to display all messages long after
the boot completed. But this implies that DSKSleep can be loaded
without traps or hangs.
DSL Utility, IOCtl Interface
To change the timeout values on a running system, a small utility
named DSL is included. This thing started as a debugging tool and
is totally command line based.
Calling DSL without any options will display a list of devices and
their timeout values. The following opions may change DSL's
behavior:
-c <a1>,<u1>,<m1> [<a2>,<u2>,<m2>]
Change timeout of unit <u1> at adapter <a1> to <m1> minutes
and unit <u2> at adapter <a2> to <m2> minutes. Supply simple
numeric values for all <> parameters (values from output of
DSL w/o parameter), insert a comma between adapter, unit and
timeout parameter (no blank!) and at least a single blank
between the first and the second adapter-unit-timeout triple.
Example, on my system DSL<return> says:
Current settings:
Adapter Unit Minutes
1 0 40
1 1 30
To change the first device to 10 minutes and the second to 15
I would use:
DSL -c 1,0,10 1,1,15
Got the point? If you find this difficult to understand
netmail me a better description and I will it include in this
file. :-)
-q
Display seconds left until a device will be stopped. That's a
value which is resetted to your configured timeout value on
every I/O.
-i <a1>,<u2>,<s1>
Change timer value for unit <u1> on adapter <a1> to <s1>
seconds. Same syntax as '-c' parameter. If you set <s1> to 0
the device will be stopped immediately (nearly). However,
remember that any I/O will reset a timer to it's maximum.
-m
Displays boot time messages. Output will be something like:
SCSI Disk Sleeper
Copyright 1996-97 by Vitus Jensen (2:2474/424)
Not registered for commercial use
Adapter 1, Unit 0 installed (40 min)
Adapter 1, Unit 1 installed (30 min)
Now, if you do not like DSL at all, feel free to modify it.
Sourcecode and a header how to access DSKSleep's IOCtl is
provided. Perhaps it will be nice to have a PM version of DSL?
DSL is enough for me but if you write (or thinking to write) such
a beast as Share-/Freeware, netmail me and I will place a notice
about it here.
BTW: there is a 'hidden' option '-v' in DSL (as in most of my
programs) it may help to insert it in front of any other option...
Tested Equipment
DSKSleep should work on any computer running OS/2 2.0 or higher.
It should work with any SCSI-related software you may think of.
That, at least, is the theory...
Please mail tested combinations (successfull or failed) so I can
try to figure out where problems reside and make DSKSleep better.
Especially usefull would be information from machines running more
than simple HPFS and/or FAT drives (i.e. HPFS386, tapes, cd
writer, ...).
Any report should include at least CPU, RAM, OS/2 Version, FixPak,
Filesystem, SCSI Controller, ADD Driver (incl. Version), SCSI
Disks, other SCSI Devices.
If '/DEBUG:1' fails a list of screen messages would be greatly
appreciated.
I have discontinued to publish all equipment/tester combinations
as this started to be too much stuff to write <g>. Thanks for the
feedback!
Successfully tested equipment include:
486DX, Pentium and compatibles at different speeds equipped with
16 to 64 MByte RAM.
Controller: AHA1542B, AHA1520, AHA2940, AHA2940UW, AIC7860, AIC6360,
NCR810, NCR8150
Disks: Conner CFA 540S
HP C3325A
IBM DFHS S2F, DORS 32160S, DPES 31080,
Quantum LPS 540, 730
Seagate Wren Runner 7
WD SP4200
Betatesters include (but are most certainly not limited to):
Petric Frank, Jochen Schnürle, Thomas Waldmann, Stefan Mielke,
Herwig Bauernfeind, Thorsten Kowalski, Murat Kenger, Günter
Bartmann, Markus Noller, Stephan Bieker, Nicolai Dufva and a
lot more I probably forgot or who didn't write any comments.
DSKSleep is written (and tested before release) on the following
machines:
486DX4-133, 32 MB RAM, 256 KB Cache, ATI Mach32 VL
AHA6360 (Adaptec VL)
Western Digital Piranha SP4200 (200MB SCSI-II)
IBM DORS (2.1GB SCSI-II)
AppleCD 150 (Sony CDU-8002 Apple-SCSI + CD800X.FLT)
Tandberg TDC 3600 (250MB SCSI-I, QIC)
OS/2 Warp 3 w/ WinOS2 (protectonly)
486DX-50, 20 MB RAM, 256 KB Cache (disabled), ATI Mach8
AHA1542B
Seagate Wren Runner 7 (1GB SCSI-I, by Imprimis)
OS/2 Warp 3 plus LAN Server 4.0 Entry
Remarks
Wren Runner still cannot be stopped. SCB completes w/o
errors but device continues to turn.
Registration
In general, this driver is a freeware program for noncommercial
users. If you are a noncommercial user, there is no charge.
However I would like to hear from you on which software/hardware
combinations this driver is used successfully. Just write a
netmail or a nice postcard (see addresses below). This will tell
my girlfriend the spent time wasn't totally useless. <g>
The unregistered version isn't crippled in any way. The only
difference is that the registered version won't display a logo if
not told so via '/V'.
You are encouraged to copy and pass on the unregistered version of
this driver, if the archive is distributed in its original form
(complete and unmodified). Please don't charge any money for the
distribution exceeding the costs of media, etc.
You are a commercial user if your machine is being run by (or for)
a corporation, government, company, foundation, or any other
organization. In this case I expect you to register this software
after a reasonable testing period (60 days).
On registration you will receive a key based on your name to feed
in the regme.exe program to change the startup logo and remove the
'/V always' mode. You will NOT receive a new archive. This key
will be valid for all versions of the driver.
Registration fee is DM 15,- per key or the equvalent in a foreign
currency. Payment may be made through Eurocheque (europe) or
postal money order. If you decide to send this money inside a
simple envelope (I'm fair :-) use DM or danish or swedish crowns
as I travel those countries regulary.
Response will be through fidonet crashmail (strongly preferred),
fidonet netmail, FAX or EMail.
If you cannot be reached elecronically and don't have a friend who
can, you may request an answer by snail mail. Please add the
estimated costs for the letter to the registration fee. German
users: simply include a self-addressed envelope.
For all orders: please WRITE YOUR NAME CLEAR as the key will be
based on it.
Source Code Availability
What do you need it for?
As an example? It's written using Microsoft C 6.0 and
the OS/2 DDK. If you already own the DDK you have many examples
how to write filter drivers. If you don't you get nothing usefull
from my source code.
If your policy is to have any program you use in source code, you
may contact me, explain your reasons and we will handle this on a
personal base.
ToDo List
- Resource Manager Calls (plug n' play <g>)
- Recode driver/DDK routines to use WatCom C
- More? IOCtls?
Author
Vitus Jensen (under assistance of Liesbeth who mostly talks about
cows(moo!) and tractors)
Address: Tischlerstr. 8, D-30916 Isernhagen, Germany
Fidonet: 2:2474/424 (V32bis, X75)
EMail: vitus@warpnet.de
FAX: +49-5136-893003 (thanks to Harald Pollack)
BBS: +49-5136-893003 (V32bis, X75, under construction)
Music: Chet Baker, Dinah Washington, Antonio Carlos Jobim, ...
Written for Version: 0.91
Date: 4/6-1997
(__) (__) * (__) * (__)
(oo) (oo) \ (oo) | (oo)
/--------\/ /-oooooo-\/ \-------\/ \-------\/
* o| || * ooooooooo o o| || / ||
||----|| ooooooooooooo ||----||>==/-----||
ooo^^ ^^ ooooooooooooooooo ^^ ^^ ^^
Cow taking Cow in deep Cow getting the sh*t
sh*t sh*t kicked out of her
=== The End ===